Simple Generation of Static Single-Assignment Form
نویسندگان
چکیده
The static single-assignment (SSA) form of a program provides data flow information in a form which makes some compiler optimizations easy to perform. In this paper we present a new, simple method for converting to SSA form, which produces correct solutions for nonreducible control-flow graphs, and produces minimal solutions for reducible ones. Our timing results show that, despite its simplicity, our algorithm is competitive with more established techniques.
منابع مشابه
Using SSA Form in a Code Optimizer
We have constructed a simple yet powerful code optimizer that uses SSA form in concert with table-driven techniques for peephole optimization and code generation. This paper describes the problems with data dependences and 2-address instructions we encountered in combining these two techniques, and how we solved them.
متن کاملA Formal Correctness Proof for Code Generation from SSA Form in Isabelle/HOL
Optimizations in compilers are the most error-prone phases in the compilation process. Since correct compilers are a vital precondition for software correctness, it is necessary to prove their correctness. We develop a formal semantics for static single assignment (SSA) intermediate representations and prove formally within the Isabelle/HOL theorem prover that a relatively simple form of code g...
متن کاملAn ASM Semantics for SSA Intermediate Representations
Static single assignment (SSA) form is the intermediate representation of choice in modern optimizing compilers for which no formal semantics has been stated yet. To prove such compilers correct, a formal semantics of SSA representations is necessary. In this paper, we show that abstract state machines (ASMs) are able to capture the imperative as well as the data flow-driven and therefore non-d...
متن کاملA New Approach to Forth Native Code Generation
RAFTS is a framework for applying state of the art compiler technology to the compilation of Forth. The heart of RAFTS is a simple method for transforming Forth programs into data ow graphs and static single assignment form. Standard code generation and optimization techniques can be applied to programs in these forms. Speciically, RAFTS uses interprocedural register allocation to eliminate nea...
متن کاملComparison and evaluation of back-translation algorithms for static single assignment forms
The static single assignment form (SSA form) is a popular intermediate representation in compilers. In the SSA form, the definition of each variable textually appears only once in the program by using a hypothetical function called a -function. Because these functions are nonexecutable, it is necessary to delete the -functions and return the SSA form to the normal form before code generation. T...
متن کامل